package com.gavinwind.inspay.paycenter.core.service;

import com.gavinwind.inspay.common.exception.pay.PayBusinessException;
import com.gavinwind.inspay.common.model.PayRequestDTO;
import com.gavinwind.inspay.common.model.PayResponseDTO;

/**
 * 【支付中心核心服务接口】
 * @author chenxin
 * @version V1.0
 * @date 2017-8-23 下午5:21
 */
public interface PayCenterCoreService {
    /**
     * 获得支付网关URL
     * @param cRequestDTO 支付请求DTO
     * @return String 网关支付授权URL
     * @exception PayBusinessException 支付业务异常,包括余额不足、账户不存在、账户异常等银行返回信息,会被转码后统一返回
     */
    String getPayGatewayUrl(PayRequestDTO cRequestDTO) throws PayBusinessException;
    /**
     * 处理实时收费请求
     * @param cRequestDTO
     * @return PayResponseDTO 支付返回结果DTO
     * @exception PayBusinessException 支付业务异常,包括余额不足、账户不存在、账户异常等银行返回信息,会被转码后统一返回
     */
    PayResponseDTO dealPayInTime(PayRequestDTO cRequestDTO) throws PayBusinessException;
}
